前言
為什麼先介紹軟體
在開始進入工程師的世界之前,先來了解工程師平常使用的工具。
就能開始用這些工具完成接下來遇到的挑戰,進公司後才不會慌。
硬體 / 平台選擇
首先,大部分的公司都會配給 Android 工程師 Apple 的電腦,所以如果可以,請用 Apple 的筆電。
用筆電的原因是,在公司經常需要直接把 code、畫面帶去給其他人看,另外,開會的時候,也會需要筆電做 demo、查 code、做會議記錄。
不過,下面介紹的軟體,不是必須,通常有很多的替代品,也不限定要用網頁版、桌面版,甚至是 chrome 的 app 都沒關係,最重要的是順手。
值得注意的是
- 有些軟體可能到了某種上限就要收費
- 資料能不能保存在雲端
- 有沒有跨平台
- 不同平台間的使用方式是否一致
軟體介紹
作業系統
-
macOS
- 用途:比較多的 Android 工程師是用 macOS,如果需要下指令、路徑、快捷鍵等問題,會更容易找到答案。
- 重要性:中
-
Linux
- 用途:Android 的底層就是 Linux,如果是要搞一台 Android Automotive OS (AAOS),甚至如果有機會在 OEM 廠商工作,那就會接觸到。
- 重要性:低
IDE
-
Android Studio
- 用途:開發 Android 用的集成環境,主要由 Google 維護,順帶一提,Android Studio 是基於 IntelliJ IDEA 魔改的,所以 Android Studio 跟 JetBrains 公司底下的 IDE 用法、快捷鍵都大致相同,未來如果接觸其他程式語言就能快速上手。
- 重要性:高
-
Visual Studio Code
- 用途:跟開發原生 Android 比較沒有關係,但它相對輕量,同時也是不少語言的主力 IDE。
- 重要性:低
通訊
-
Slack
- 用途:科技公司經常使用的通訊軟體,有分群、權限、丟檔案、自訂貼圖、語音 / 視訊通話等功能,甚至能在裡面寫各種機器人,例如:丟出 CI 執行的結果。
- 重要性:高
-
Microsoft Teams
Git
代管
Git GUI client
專案管理
缺陷管理、任務追蹤和專案管理。
辦公室協作
雲端平台
API
-
Postman
- 用途:server 端給出 API 時,可以自帶參數手動戳 API,如此就可以快速達到不容易在 App 中觸發的情境。也有雲端記錄、分類、一鍵切換 domain 等功能。
- 重要性:高
CI
CI 是可以自動 build、test、計算 lint 甚至在有問題的時候示警的持續整合服務。
設計
-
Zeplin
- 用途:公司的 designer 給出的設計稿。
- 重要性:高
-
Figma
- 用途:公司的 designer 給出的設計稿。
- 重要性:高
-
Sketch
- 用途:公司的 designer 給出的設計稿。
- 重要性:高
-
Adobe XD
- 用途:公司的 designer 給出的設計稿。
- 重要性:高
筆記 / 日誌 / 手稿
-
Notion
- 用途:從 check list 到 workflow,基本上所有筆記軟體有的功能它都有,還能夠切換 workspace 達到工作與個人的切換。
- 重要性:中
-
Google Keep
- 用途:基本的功能都有,是很方便快速記錄想法的地方。
- 重要性:中
-
Sublime Text
- 用途:單機的高級記事本,可以開啟多個頁簽,並有預設許多程式語言 Syntax highlighting 的功能。
- 重要性:中
-
Medium
-
GitHub Gist
- 用途:快速分享一段程式碼,還可嵌入在網頁中。
- 重要性:低
文字排版
心智圖
-
XMind
- 用途:在 brainstorm、列測試項目時可以用到。
- 重要性:低
數據分析 (BI)
如果很難想象,可以參考這篇的介紹。
-
Grafana
- 用途:可以指定多種資料來源,並下查詢指令來分析數據,最後可以用各種圖表的呈現方式製作成 Dashboard。
- 重要性:低
-
Redash
-
AppsFlyer
- 用途:強調在行銷數據的分析、量化,像是email、簡訊、下載率、轉換率,還能分眾提供差異化內容,達到精準投放的目的。
- 重要性:低
媒體閱讀
-
Feedly
- 用途:透過 rss 的方式,取得各種網路媒體的文章,可分類、收藏。
- 重要性:中
ERP
VPN
結語
會用什麼軟體跟公司的性質、規模很有關係,因為有些軟體貴得嚇人。
雖然上面列了一大堆,但其實不用太擔心,軟體也是一直在更新,邊做邊學就好,也不是什麼功能都會用到。
也許在面試的時候,可以問面試官,公司所使用的軟體,並在進公司前學起來,就能安心一點了。